package com.mikao.controller.manager;

import com.mikao.dto.bo.ReqDataTableDto;
import com.mikao.dto.bo.SysRoleForm;
import com.mikao.dto.vo.SysRoleDto;
import com.mikao.dto.vo.RoleNameDto;
import com.mikao.dto.vo.RspDataTableDto;
import com.mikao.service.SysRoleService;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;


/**
 * @author KennyDavid
 */
@RestController
@RequestMapping("/management")
@Scope("prototype")
public class RoleController {

    @Resource
    private SysRoleService sysRoleService;

    /**
     * 角色下拉列表
     *
     * @return list
     */
    @GetMapping("/getRoleList")
    public List<RoleNameDto> getRoleList() {
        return sysRoleService.getRoleList();
    }

    /**
     * 角色分页列表
     *
     * @param reqDataTableDTO 封装类
     * @return 封装类
     */
    @GetMapping("/getRolePage")
    public RspDataTableDto<SysRoleDto> getRolePage(@ModelAttribute ReqDataTableDto reqDataTableDTO) {
        return sysRoleService.getRolePage(reqDataTableDTO);
    }

    /**
     * 添加角色
     *
     * @param sysRoleForm 角色表单
     */
    @PostMapping("/saveRole")
    public void saveRole(@ModelAttribute SysRoleForm sysRoleForm) {
        sysRoleService.saveRole(sysRoleForm);
    }

    /**
     * 删除角色
     *
     * @param roleId id
     * @return bool
     */
    @GetMapping("/removeRole/{roleId}")
    public Boolean removeRole(@PathVariable Long roleId) {
        return sysRoleService.deleteRole(roleId);
    }

    /**
     * 判断角色名是否存在
     *
     * @param role id
     * @return bool
     */
    @GetMapping("/isRoleExist")
    public Boolean isRoleExist(String role) {
        return sysRoleService.isRoleExist(role);
    }
}
